The question, \textit{"Why Software metrics?"}, is important to answer before we continue. 
During the developent of a software system you want to be able to say that your system is maintainable. This means that you can easily solve problems when they arise without introducing new problems.
For example, if your code has a high Cyclometic Complexity you are more likely to introduce a new bug in your fix because the code is hard to understand.

If you use one metric to evaluate your code it is not necessarily relavant. A function with only 20 lines of code but a high Cyclometic Complexity can be hard to understand, but the same is true for functions that contain 200 lines but a low Cyclometic Complexity.

Detecting code that is hard to understand and thus is more likely to contain faulty code is important. We want to detect this because the costs of fixing defects can be as high as 60\% \textbf{\cite{Houston}}.